package day05;

import java.util.Arrays;
import java.util.Random;

//数组的演示
public class ArrayDemo {
    public static void main(String[] args) {
        //数组的排序:
        //常见的排序算法:冒泡排序,快速排序,插入排序,选择排序,归并排序,希尔排序...
        int[] arr=new int[10];
        Random rd=new Random();

        for (int i=0;i<arr.length;i++){//给arr数组,随机生成10个随机元素
            int rdnum=rd.nextInt(100);
            arr[i]=rdnum;
            System.out.println(arr[i]);
        }

        //先随机生成10个随机数为arr的数组元素
       Arrays.sort(arr);//对arr数组进行排序

        System.out.println("升序后");
        for (int i=0;i<arr.length;i++){//对10个数组进行排序
            System.out.println(arr[i]);
        }

        System.out.println("倒着输出");
        for (int i=arr.length-1;i>=0;i--){//数据还是升序的，只是倒着展示

            System.out.println(arr[i]);
        }
        System.out.println("第一个元素为:"+arr[0]);
        /*
        //4.数组的遍历:从头到尾挨个走遍
       int[] arr=new int[100];
       for (int i=1;i<100;i++){
           arr[i]=(int) (Math.random()*100);//给这10个元素都赋值为1-99的随机数
       }
        System.out.println(arr[2]);//输出第三个元素的值

         */

        /*
        //1.数组的定义
        int[] a=new int[5];
        //声明一个整数的数组a,包含了5个元素,每个元素都是int类型,默认值为0
        double[] b=new double[5];
        //声明一个浮点数的数组b,包含了5个元素,每个元素都是double类型,默认值为0.0
        boolean[] c=new boolean[5];
        //声明一个布尔型的数组c,包含了5个元素,每个元素都是boolean类型,默认值为false

        //2.数组的初始化: 初始化数组的元素
       int[] q=new int[2];
       int[] w={1,2,3};
       int[] e=new int[]{1,2,3};
       int[] r;
       //r={1,2,3};//编译错误,此方式只能声明的同时初始化
       r=new int[]{1,2,3};

       //3.数组的访问: 访问的数组中的数据
        //通过下标/索引/符合来访问数组的元素,下标从0开始,最大到(数组长度-1)
        //从0开始
        int[] arr=new int[]{1,2,3};
        System.out.println("数组的长度:"+arr.length);
        System.out.println(arr[0]);//输出arr数值的第一个数
        arr[2]=100;//给arr数组第三个元素赋值
        System.out.println(arr[1]);//输出arr数组的第二个元素
        System.out.println(arr[arr.length-1]);//输出arr数组的最后一个元素

         */
    }
}
